package com.wyw.design.model.learning.structure.flyweight;

/**
 * @Title       ExamInfo
 * @Description
 * @Author Mr Wu yewen.wu.china@gmail.com
 * @Date 2023/3/30 18:03
 * Update History:
 * Author        Time            Content
 */
public class ExamInfo {

    // 内部状态，用于在各个对象之间共享，不随环境改变而改变，存储在享元对象内部，往往作为对象的动态附加信息存在
    private String user; // 考生

    // 外部状态，随环境改变而改变，属于不可共享的状态，是对象得以依赖的一个标记
    // 在考试信息里面，我们将考试科目作为考试信息的唯一标识，以此来实现对象复用
    private String subject; // 考试科目

    public ExamInfo(String subject) {
        this.subject = subject;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    @Override
    public String toString() {
        return "ExamInfo{" +
                "user='" + user + '\'' +
                ", subject='" + subject + '\'' +
                '}';
    }
}